草庐IT

Java HotSpot 枚举开销

全部标签

c# - 标记枚举和按位运算与 “string of bits”

一位开发人员建议我们将一周中的几天选择存储为由1和0组成的7个字符的字符串,即“1000100”代表星期一和星期五。我更喜欢(并强烈建议)带有Flags枚举和按位运算的解决方案,我认为这是一种更简洁的方法,其他开发人员应该更容易理解。[Flags()]publicenumWeekdays:int{Monday=1,Tuesday=2,Wednesday=4,Thursday=8,Friday=16,Saturday=32,Sunday=64}但是,当我开始实现示例解决方案时,我意识到也许简单的字符串方法毕竟更简单:如果您只看数据,位串肯定比“17”更明显。我发现C#按位运算违反直觉且极

c# - 如何检查是否设置了多个枚举标志?

我只想知道是否设置了一个枚举标志,而不是设置了哪些。我目前的想法是检查它是否是2的幂。是否有更好的方法内置到枚举类型中?[Flags]enumFoo{Flag1=0x01,Flag2=0x02,Flag3=0x04,Flag4=0x08,Flag5=0x10,Flag6=0x20,Flag7=0x40,Flag8=0x80}privateboolExactlynOneFlagSet(FoomyFoo){varx=(byte)myFoo;return(x!=0)&&((x&(x-1))==0);//Checkifapowerof2}if(!ExactlynOneFlagSet(Foomy

c# - 如何检查是否设置了多个枚举标志?

我只想知道是否设置了一个枚举标志,而不是设置了哪些。我目前的想法是检查它是否是2的幂。是否有更好的方法内置到枚举类型中?[Flags]enumFoo{Flag1=0x01,Flag2=0x02,Flag3=0x04,Flag4=0x08,Flag5=0x10,Flag6=0x20,Flag7=0x40,Flag8=0x80}privateboolExactlynOneFlagSet(FoomyFoo){varx=(byte)myFoo;return(x!=0)&&((x&(x-1))==0);//Checkifapowerof2}if(!ExactlynOneFlagSet(Foomy

c# - 处理枚举时没有默认的switch语句

自从我开始使用.NET以来,这一直是我的烦恼,但我很好奇以防我遗漏了什么。我的代码片段无法编译(请原谅示例的强制性质),因为(根据编译器)缺少返回语句:publicenumDecision{Yes,No}publicclassTest{publicstringGetDecision(Decisiondecision){switch(decision){caseDecision.Yes:return"Yes,that'smydecision";caseDecision.No:return"No,that'smydecision";}}}现在我知道我可以简单地放置一个默认语句来摆脱编译器警

c# - 处理枚举时没有默认的switch语句

自从我开始使用.NET以来,这一直是我的烦恼,但我很好奇以防我遗漏了什么。我的代码片段无法编译(请原谅示例的强制性质),因为(根据编译器)缺少返回语句:publicenumDecision{Yes,No}publicclassTest{publicstringGetDecision(Decisiondecision){switch(decision){caseDecision.Yes:return"Yes,that'smydecision";caseDecision.No:return"No,that'smydecision";}}}现在我知道我可以简单地放置一个默认语句来摆脱编译器警

c# - 在 ConverterParameter 中使用枚举

我正在构建一个可供许多用户使用的应用程序。每个用户都被分类到下一个身份验证级别之一:publicenumAuthenticationEnum{User,Technitian,Administrator,Developer}一些控件(例如按钮)只对某些级别的用户公开。我有一个属性保存当前用户的身份验证级别:publicAuthenticationEnumCurrentAuthenticationLevel{get;set;}我想将此属性绑定(bind)到某些控件的“Visibilty”属性,并将一个参数传递给Converter方法,告诉它能够看到该控件的最低身份验证级别是什么。例如:表示

c# - 在 ConverterParameter 中使用枚举

我正在构建一个可供许多用户使用的应用程序。每个用户都被分类到下一个身份验证级别之一:publicenumAuthenticationEnum{User,Technitian,Administrator,Developer}一些控件(例如按钮)只对某些级别的用户公开。我有一个属性保存当前用户的身份验证级别:publicAuthenticationEnumCurrentAuthenticationLevel{get;set;}我想将此属性绑定(bind)到某些控件的“Visibilty”属性,并将一个参数传递给Converter方法,告诉它能够看到该控件的最低身份验证级别是什么。例如:表示

c# - 如何设置枚举标志的所有位

我想知道将enum标志的所有位设置为1的通用方法。我只想要一个enum返回所有比较,而不考虑其他枚举。这段代码有效;[Flags]publicenumSomeRightEnum:uint{CanDoNothing=0,CanDoSomething=1但在上面的代码中,因为它是uint,我们设置了“F”的数量,如果它是int,它就不会工作。因此,无论数据类型如何(int,int64,uint等) 最佳答案 最简单的可能是:enumFoo{blah=1,....all=~0}对于基于无符号的枚举:enumFoo:uint{blah=1,

c# - 如何设置枚举标志的所有位

我想知道将enum标志的所有位设置为1的通用方法。我只想要一个enum返回所有比较,而不考虑其他枚举。这段代码有效;[Flags]publicenumSomeRightEnum:uint{CanDoNothing=0,CanDoSomething=1但在上面的代码中,因为它是uint,我们设置了“F”的数量,如果它是int,它就不会工作。因此,无论数据类型如何(int,int64,uint等) 最佳答案 最简单的可能是:enumFoo{blah=1,....all=~0}对于基于无符号的枚举:enumFoo:uint{blah=1,

c# - 当值已知时获取枚举名称

我有一个枚举,其中有不同的颜色。我想向某个函数传递int并让它返回该位置枚举中的颜色名称。有什么方法可以做到这一点? 最佳答案 return((MyEnumClass)n).ToString(); 关于c#-当值已知时获取枚举名称,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3327883/